// modules/settingModule/pages/servedetail/servedetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userinfo:{},
    list:[],
    loading:true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    var userinfo=wx.getStorageSync('suser')                                              
    this.setData({
      userinfo:userinfo
    })
    this.getList(1)      
},
onShow(){

  this.getList(1)      
},
onChange(e){
    console.log(e.detail.index)
    switch(e.detail.index){
        case 0:
          this.getList(1)
          break
          case 1:
            this.getList(2)
            break
    }
},
getList(t) {
  this.setData({
    loading:true
  })
  wx.cloud.callFunction({
    name: "order",
    data: {
      type:"selectBysid",
      sid:this.data.userinfo._id,
      t:t
    }
  }).then(async res => { // 将 res 处理部分改为 async
    const objects = res.result.data;

    // 使用 Promise.all 来等待所有 getServiceInfo 的结果
    const dataPromises = objects.map(async (obj) => {
      const { title }  = await this.getServiceInfo(obj.pid); // 等待 info 解析
      return { ...obj, title }; // 合并对象
    });

    const data = await Promise.all(dataPromises); // 等待所有 Promise 完成

    this.setData({
      list: data, // 设置合并后的数据
      loading:false
    });
  }).catch(error => {
    console.error('Error fetching order list:', error);
  });
},
toSubmit(e){
  var id=e.currentTarget.dataset.id
  wx.navigateTo({
    url: '../servesubmit/servesubmit?id='+id,
  })
},
accept(e){
  var id=e.currentTarget.dataset.index
  wx.cloud.callFunction({
    name:"order",
    data:{
      type:"jd",
      t:1,
      id:id,
      sid:this.data.userinfo._id
    }
  }).then(res=>{
    console.log(res)
    wx.showToast({
      title: '接单成功',
    })
    this.setData({
      loading:true
    })
    this.getList()
  })
},
getServiceInfo(pid) {
  return wx.cloud.callFunction({
    name: "service",
    data: {
      type: "selectById",
      id: pid
    }
  }).then(res => {
    return { ...res.result.data }; // 返回 Promise，resolve 为服务信息
  }).catch(error => {
    console.error('Error fetching service info:', error);
    return {}; // 处理错误时返回空对象或其他默认值
  });
}
})